package com.icinfo.cloud.provider.peripheralinterface.zszf.service;

import com.icinfo.cloud.provider.peripheralinterface.zszf.dto.HandLawWaitApprovalQueryDto;
import com.icinfo.cloud.provider.peripheralinterface.zszf.dto.HandLawWaitApprovalRecordPageQueryDto;
import com.icinfo.cloud.provider.peripheralinterface.zszf.vo.WaitApprovalBasicInfoVo;
import com.icinfo.cloud.provider.peripheralinterface.zszf.vo.WaitApprovalRecordVo;

import com.icinfo.cloud.provider.punish.approval.vo.AuditInfoListVo;
import com.icinfo.cloud.provider.punish.ucase.urge.dto.CaseUrgeAddDto;
import com.icinfo.cloud.provider.punish.ucase.urge.dto.CaseUrgeDetailDto;
import com.icinfo.cloud.provider.punish.ucase.urge.dto.CaseUrgePageRequest;
import com.icinfo.cloud.provider.punish.ucase.urge.dto.CaseUrgePageResponse;
import com.icinfo.framework.common.web.Result;
import com.icinfo.cloud.provider.common.page.PageResponse;

import java.util.List;

/**
 * 描述：掌上执法接口服务实现类
 *
 * @author shishengyao
 * @description
 * @date 2023/4/18
 */
public interface IHandLawIInterfaceService {
    /**
     * 描述：获取待审批基础信息（掌上执法）
     *
     * @param queryDto 查询dto
     * @return {@link WaitApprovalBasicInfoVo }
     * @author shishengyao
     * @date 2023/04/18
     */
    WaitApprovalBasicInfoVo getWaitApprovalBasicInfoVo(HandLawWaitApprovalQueryDto queryDto);

    /**
     * 描述：获取待审批列表（掌上执法）
     *
     * @param queryDto 查询dto
     * @return {@link Result<PageResponse<WaitApprovalRecordVo>> }
     * @author shishengyao
     * @date 2023/04/18
     */
    Result<PageResponse<AuditInfoListVo>> getWaitApprovalRecordList(HandLawWaitApprovalRecordPageQueryDto queryDto);

    /**
     * 描述：查询案件催办页面
     *
     * @param pageRequest 页面请求
     * @return {@link Result<PageResponse<CaseUrgePageResponse>> }
     * @author shishengyao
     * @date 2023/04/20
     */
    Result<PageResponse<CaseUrgePageResponse>> getCaseUrgePageList(CaseUrgePageRequest pageRequest);

    /**
     * 获取案件催办详情
     *
     * @param caseId
     * @return {@link List<CaseUrgeDetailDto> }
     * @author shishengyao
     * @date 2023/04/20
     */
    Result<List<CaseUrgeDetailDto>> getUrgeDetailList(String caseId);

    /**
     * 获取案件催办详情
     *
     * @param dto dto
     * @return {@link Result<String> }
     * @author shishengyao
     * @date 2023/04/20
     */
    Result<String> saveCaseUrge(CaseUrgeAddDto dto);
}
